草庐IT

MySQL IF THEN 在 WHERE 子句中

全部标签

php - Doctrine:如何从监听器(preDqlSelect)中的选择查询中删除部分 where 子句?

我的监听器是行为的一部分,它应该删除任何调用的选择查询的where子句中的所有is_published检查。在子句中添加一个部分非常容易,但如何删除一个部分。有一些函数像Doctrine_Query->removeDqlQueryPart('where'),但这删除了完整的where子句,而我只需要'is_published=?'要删除的部分。但是我可以用正则表达式或其他东西以某种方式手动处理这个问题。但比较棘手的是,如何去掉'?'代表的参数?来自相应的参数数组(可通过Doctrine_Query->getRawParams()检索)。所以我问,有没有一种干净的方法来转换这种查询:..

php - Symfony2 MVC : where does my code belong?

我正在寻求澄清是将代码放入Controller、实体还是提供服务。我有“cardset”和“card”对象(其中许多后者嵌入前者MongoDB中),由普通的PHP类/对象表示。这些包含属性,例如'id','postal_address'.我有一个生成卡片PDF的方法。目前我在“Card”对象中有它,所以我可以从Controller调用:$card->makePDF()这对我来说似乎很干净而且面向对象,但我怀疑我错了。如果我将所有逻辑都放在Controller中,这会变得又长又笨重,而且我不确定Controller是否是作用于我的对象的方法所在的地方。这就是服务的目的吗?尝试总结一下:一

php - Doctrine multiple where 条件

我正在使用Doctrine2.3,我在为以下场景设计查询时遇到困难。SELECT*FROMsourceWHEREsource_id='10'orsource_id='100'orsource_id='30'我这样做是为了选择单个ID,但我不确定该怎么做。$qry=$this->manager()->create()->select('e')->from($this->entity,'e')->where('e.id=:id');有人可以帮助我吗?如果我了解上述查询的工作原理,我将解决其他问题。如下。SELECT*FROMsourceWHEREsource_id='10'andsourc

php - doctrine dql where子句与关联实体的解释

给定这个实体classSystemRecord{/***@ORM\Id*@ORM\Column(type="integer",name="ID")*@ORM\GeneratedValue*@varint*/private$id;/***@ORM\ManyToOne(targetEntity="Application\Entity\User")*@ORM\JoinColumn(name="USER_SERIAL",referencedColumnName="SERIAL",nullable=false)*@varUser*/private$user;/***@ORM\Column(typ

php - CodeIgniter Active Record 多个 "where"和 "or"语句

我有以下ActiveRecord查询。//Example1publicfunctioninfo($school,$class,$student,$keyword){$this->db->where('school.id',$school);$this->db->where('class.id',$class);$this->db->where('student.id',$student);$this->db->or_where('school.description',$keyword);$this->db->or_where('class.description',$keyword)

php - 拉维尔 4 : Adding where clause to a join condition

它在laraveldocs中说可以在连接上添加where子句,但是每当我在代码中尝试使用where子句时,我都会收到错误消息:CalltoundefinedmethodIlluminate\Database\Query\JoinClause::where()。谁知道如何在连接子句中添加where子句?Laravel网站示例:DB::table('users')->join('contacts',function($join){$join->on('users.id','=','contacts.user_id')->where('contacts.user_id','>',5);})-

php - 如何在 Eloquent ORM Laravel 上添加多个 where 子句?

在这里尝试检索我需要ID和日期匹配的特定记录时遇到困难,这是我的代码:$testq=DB::table('attendances')->where('user_id','=',$userinput&&'logon','=',$newdate)->get(); 最佳答案 只需在其中添加一个。$testq=DB::table('attendances')->where('user_id','=',$userinput)->where('logon','=',$newdate)->get();http://laravel.com/api/

php - MVC : Where should I format data?

我从模型(一个包含数据的数组)获取数据,我需要以特定格式显示。我需要遍历数组,格式化数据然后显示它。我应该在哪里格式化数据以显示?在模型、Controller还是View中?谢谢。 最佳答案 对数组的迭代和显示数据是在View中完成的。因此,我也会在View中进行格式化。如果格式化很复杂和/或需要大量代码,请将其放在辅助函数中。例如:查看:助手:functionformat_function($text){//Dosomeformattinghere...return$formatted_text;}

php - Laravel:转义 "LIKE"子句?

如何在Laravel/Eloquent中转义LIKE子句?例如,$search=Input::query('sSearch','');if($search!==''){$paginatedBookings->where('first_name','LIKE','%'.$search.'%');}如果$search包含%或_,则需要对其进行转义。 最佳答案 另一个答案忘记了转义转义字符本身,这是一个更强大的解决方案:/***EscapespecialcharactersforaLIKEquery.**@paramstring$valu

mysql执行计划之Extra列-Using where

顾名思义,Extra列是用来说明一些额外信息的,我们可以通过这些额外信息来更准确的理解MySQL到底将如何执行给定的查询语句。MySQL提供的额外信息很多。这里单说Usingwhere。Usingwhere只是表示MySQL使用where子句中的条件对记录进行了过滤。与是否全表扫描或读取了索引文件没有关系,网上有不少文章把Usingwhere与是否读取索引进行关联,是不正确的,也有文章把Usingwhere与回表进行了关联,这也是不对的。 下面两个sql。其中第一个,表示用wherenameisnotnull条件后,拿到了enterprise表全量的90%的数据。